package com.example.xianji.activity;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.Request.Method;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.JsonObjectRequest;
import com.example.xianji.Contant;
import com.example.xianji.XJApplication;
import com.example.xianji.R;
import com.example.xianji.adapter.DuiJie_Adapter;
import com.example.xianji.BGARefresh.BGANormalRefreshViewHolder;
import com.example.xianji.BGARefresh.BGARefreshLayout;
import com.example.xianji.BGARefresh.BGARefreshLayout.BGARefreshLayoutDelegate;
import com.example.xianji.bean.My_DuiJie;
import com.example.xianji.constant.Constant;
import com.example.xianji.utils.sp.PreferenceEngine;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class Main_My_Receive_TiWenActivity extends Activity implements OnClickListener, BGARefreshLayoutDelegate {
    /**************************我收到的提问页面***********************/
    private RelativeLayout my_receive_tiwen_back;
    //    private SharedPreferences sp;
//    private Editor ed;
    private ArrayList<My_DuiJie> my_receive_tiwen_list = new ArrayList<My_DuiJie>();
    private DuiJie_Adapter mDuiJie_Adapter;
    private BGARefreshLayout my_recieve_PullToRefreshLayout_two;
    private ListView my_recieve_mylistview;
    private int page = 1;

    private Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 1) {
                my_recieve_mylistview.setAdapter(mDuiJie_Adapter);
                my_recieve_PullToRefreshLayout_two.endRefreshing();
            }
            if (msg.what == 2) {
                mDuiJie_Adapter.notifyDataSetChanged();
                my_recieve_PullToRefreshLayout_two.endLoadingMore();
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
        setContentView(R.layout.activity_main__my__receive__ti_wen);
        my_receive_tiwen_back = (RelativeLayout) findViewById(R.id.my_receive_tiwen_back);
//        sp = getSharedPreferences("text", MODE_PRIVATE);
//        ed = sp.edit();
        mDuiJie_Adapter = new DuiJie_Adapter(this, my_receive_tiwen_list, 1, 2);
        my_recieve_PullToRefreshLayout_two = (BGARefreshLayout) findViewById(R.id.my_recieve_PullToRefreshLayout_two);
        my_recieve_mylistview = (ListView) findViewById(R.id.my_recieve_mylistview);

        XJApplication.cachThreadPool.execute(new Runnable() {

            @Override
            public void run() {
                get_receive_tiwen();
            }
        });
        my_receive_tiwen_back.setOnClickListener(this);
        my_recieve_PullToRefreshLayout_two.setDelegate(this);
        my_recieve_PullToRefreshLayout_two.setRefreshViewHolder(new BGANormalRefreshViewHolder(
                this, true));
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.my_receive_tiwen_back) {
            this.finish();
        }
    }

    public void get_receive_tiwen() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("token", PreferenceEngine.getInstance().getString(Constant.SP.NAME, Constant.SP.KEY_XIANJI_TOKEN, ""));
        map.put("page", 1 + "");
        JSONObject params = new JSONObject(map);

        JsonObjectRequest request = new JsonObjectRequest(Method.POST, Contant.my_receive_tiwen,
                params, new Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                try {
                    if (response.getInt("status") == 1) {
                        my_receive_tiwen_list.clear();
                        JSONArray array = response.getJSONArray("data");
                        if (array.length() > 0) {
                            for (int i = 0; i < array.length(); i++) {
                                JSONObject obj = array.getJSONObject(i);
                                My_DuiJie mMy_DuiJie = new My_DuiJie();
                                mMy_DuiJie.setCreated_at(obj.getString("created_at"));
                                mMy_DuiJie.setTitle(obj.getString("query"));
                                mMy_DuiJie.setStatus(obj.getInt("status"));
                                mMy_DuiJie.setId(obj.getInt("id"));
                                my_receive_tiwen_list.add(mMy_DuiJie);
                            }
                        } else {
                            Toast.makeText(Main_My_Receive_TiWenActivity.this, "没有数据哦", Toast.LENGTH_SHORT).show();
                        }
                    }
                    handler.sendEmptyMessage(1);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
            }
        });
        XJApplication.getHttpQueues().cancelAll("abcPost");
        request.setTag("abcPost");
        request.setRetryPolicy(new DefaultRetryPolicy(50 * 1000, 1, 1.0f));
        XJApplication.getHttpQueues().add(request);
        XJApplication.getHttpQueues().start();
    }

    public void get_receive_tiwen_more() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("token", PreferenceEngine.getInstance().getString(Constant.SP.NAME, Constant.SP.KEY_XIANJI_TOKEN, ""));
        map.put("page", page + "");
        JSONObject params = new JSONObject(map);
        JsonObjectRequest request = new JsonObjectRequest(Method.POST, Contant.my_receive_tiwen,
                params, new Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                try {
                    if (response.getInt("status") == 1) {
                        JSONArray array = response.getJSONArray("data");
                        if (array.length() > 0) {
                            for (int i = 0; i < array.length(); i++) {
                                JSONObject obj = array.getJSONObject(i);
                                My_DuiJie mMy_DuiJie = new My_DuiJie();
                                mMy_DuiJie.setCreated_at(obj.getString("created_at"));
                                mMy_DuiJie.setTitle(obj.getString("query"));
                                mMy_DuiJie.setStatus(obj.getInt("status"));
                                mMy_DuiJie.setId(obj.getInt("id"));
                                my_receive_tiwen_list.add(mMy_DuiJie);
                            }
                        } else {
                            Toast.makeText(Main_My_Receive_TiWenActivity.this, "没有更多数据哦", Toast.LENGTH_SHORT).show();
                        }
                    }
                    handler.sendEmptyMessage(2);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
            }
        });
        XJApplication.getHttpQueues().cancelAll("abcPost");
        request.setTag("abcPost");
        request.setRetryPolicy(new DefaultRetryPolicy(50 * 1000, 1, 1.0f));
        XJApplication.getHttpQueues().add(request);
        XJApplication.getHttpQueues().start();
    }

    @Override
    public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
        page = 1;
        XJApplication.cachThreadPool.execute(new Runnable() {

            @Override
            public void run() {
                get_receive_tiwen();
            }
        });
    }

    @Override
    public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
        page++;
        XJApplication.cachThreadPool.execute(new Runnable() {

            @Override
            public void run() {
                get_receive_tiwen_more();
            }
        });
        return true;
    }
}